home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 June
/
EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso
/
earcd
/
utmisc1
/
chktex.lha
/
chktex
/
deweb.in
< prev
next >
Wrap
Text File
|
1996-04-30
|
2KB
|
127 lines
#! @PERL5@
# deweb v1.1, kills the C sections of a CWEB file, for passing to ChkTeX.
# Copyright (C) 1996 Jens T. Berger Thielemann
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Contact the author at:
# Jens Berger
# Spektrumvn. 4
# N-0666 Oslo
# Norway
# E-mail: <jensthi@ifi.uio.no>
#
#
#
print STDERR "DeWEB v1.0 - Copyright 1996 Jens T. Berger Thielemann\n";
undef $/;
$texmode = 1;
$_ = <>;
while(/\@/)
{
&out($`);
$_ = $';
if(/^@/) {
$_ = $'; #'
&out('@');
next;
}
if(/^([\s\n])/) {
$_ = $'; #'
print "\n" if $1 eq "\n";
$texmode = 1;
next;
}
if(/^[cpd]/i) {
$_ = $'; #'
$texmode = 0;
next;
}
if(/^\,/i) {
$_ = $'; #'
print '\,';
next;
}
if(/^\//i) {
$_ = $'; #'
print '\\';
next;
}
if(/^[h\&\|\;\#\+]/i || /^i.*/i) {
$_ = $'; #'
next;
}
if(/^\*[0-9\*]?((.|\n)*?\.)/) {
$_ = $'; #'
print $1;
$texmode = 1;
next;
}
if(/^[<(^.t!]((.|\n)*?)\@\>/i) {
$_ = $'; #'
print '{'.$1.'}';
$texmode = 0;
next;
}
if(/^[=]((.|\n)*?)\@\>/) {
$_ = $'; #'
print &printnl($1);
next;
}
if(/^[fsl](\s+\S+\s+\S+)|^\'(.|\n)*?\'|^\[((.|\n)*?)\@\]/i) {
$_ = $'; #'
print &printnl($+);
next;
}
@line = split(/\n/, $_, 2);
print STDERR "Unknown opcode, ignored. Buffer:\n$line[0]\n";
}
print $_;
sub printnl {
my($foo);
if(defined $_[0]) {
$foo = $_[0];
$foo =~ s/.//g; # Remember, . doesn't match \n
} else {
$foo = "";
}
$foo;
}
sub out {
print $texmode? $_[0] : &printnl($_[0]);
}